feat(ui): fun-while-dying slice 2 — rotating surreal adverts + ironic weather - #16
Merged
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…pper spoof) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ed weather Replaces the static NUCLEAR DUCKS ad and fixed 4-item classifieds with round-derived rotation over a locked 15-advert pool and a 16-item classifieds pool. deriveForecast gains a reportedRound param so the same damage tier's flavour rows read differently round to round, and CORRECTIONS expands from 3 to 8. All selection stays a pure function of reportedRound (no RNG).
There was a problem hiding this comment.
🟢 Claude BugBot Analysis
No bugs found in the changes. The new adverts/classifieds/weather rotation helpers in newspaper.ts and their wiring in RoundSummary.tsx are internally consistent: pool sizes (15 adverts, 16 classifieds, 8 corrections) match the modulo-based rotation logic, index math is verified against the accompanying tests, and no null/undefined dereferences or off-by-one errors were found.
No bugs were detected in this PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
"Fun while dying" slice 2 — makes the RoundSummary tabloid varied and funny. The design frame (from the playability study + assessment): in a "nobody wins" game the reward is an entertaining death, and the newspaper is that surface. Content + pure selection helpers only — no engine, AI, or layout change.
Changes
deriveForecastgains a round param.All selection is a pure function of the round number — deterministic, reproducible, differs every round, rare in-game repeats. No RNG, no engine state.
Verified
npm run typecheckclean;npm run test:run→ 57 files / 427 tests green.tests/ui/newspaper.test.ts): ADVERTS == 15 + non-empty; pickAdvert rotates & wraps; CLASSIFIEDS ≥16 + pickClassifieds returns 4 distinct, rotating; CORRECTIONS ≥8; deriveForecast preserves all 4 tier→outlook/UV mappings and rotates rows by round. All assertions unconditional.Spec:
docs/superpowers/specs/2026-07-26-fun-while-dying-slice2-newspaper-content-design.md· Plan:docs/superpowers/plans/2026-07-26-fun-while-dying-slice2-newspaper-content.mdPart of a 3-slice effort; slices 1 (characters & difficulty) and 3 (score-how-you-died) follow as their own PRs.
🤖 Generated with Claude Code